#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>

void *printf123(void *arg)
{
  printf("thread id: %d; process id: %d; arg: %s\n", pthread_self(), getpid(), arg);
  return NULL;
}

int main()
{

  pthread_t pt1;

  printf("main thread id: %d; process id: %d\n", pthread_self(), getpid());
  // 创建线程
  // 第一个参数为线程指针，第二个参数为线程属性(NULL为默认属性)，第三个参数为线程函数(回调函数)，第四个参数为线程函数的参数
  int ret = pthread_create(&pt1, NULL, (void *)&printf123, "hello world");

  if (ret < 0)
  {
    perror("pthread_create");
    exit(1);
  }

  sleep(1);

  return 0;
}